
https://leetcode.cn/problems/sort-an-array/
//class Solution {
//public:
//    vector<int> sortArray(vector<int>& nums)
//    {
//        srand(time(NULL));
//        qsort(nums, 0, nums.size() - 1);
//        return nums;
//    }
//    void qsort(vector<int>& nums, int l, int r)
//    {
//        if (l >= r) return;
//        int key = GetRandom(nums, l, r);
//        int left = l - 1, i = l, right = r + 1;
//        while (i < right)
//        {
//            if (nums[i] < key)
//            {
//                swap(nums[++left], nums[i++]);
//            }
//            else if (nums[i] == key)
//            {
//                i++;
//            }
//            else
//            {
//                swap(nums[--right], nums[i]);
//            }
//        }
//        qsort(nums, l, left);
//        qsort(nums, right, r);
//    }
//
//    int GetRandom(vector<int>& nums, int l, int r)
//    {
//        int x = rand();
//        return nums[x % (r - l + 1) + l];
//    }
//};


https://leetcode.cn/problems/sort-colors/description/
//class Solution {
//public:
//    void sortColors(vector<int>& nums)
//    {
//        int n = nums.size();
//        int l = -1;
//        int  r = n;
//        for (int i = 0; i < r;)
//        {
//            if (nums[i] == 0)
//            {
//                swap(nums[i++], nums[++l]);
//            }
//            else if (nums[i] == 1)
//            {
//                i++;
//            }
//            else
//            {
//                swap(nums[i], nums[--r]);
//            }
//        }
//
//    }
//};